<template> <div id="newsList"> <!-- 页面头部 --> <HomePageHead></HomePageHead> <!-- 导航栏 --> <HomePageNavigation1></HomePageNavigation1> <!-- 列表页广告一 --> <HomeTopTen :imgurl="adImg1" v-if="adImg1"></HomeTopTen> <!-- 搜索框 --> <div class="search"> <div class="inner"> <input v-model="keywordInput" type="text" placeholder="请输入搜索内容"> <button @click="goSearch">搜索</button> </div> </div> <div class="breadcrumb"> <div class="inner"> <span class="location">当前位置:</span> <el-breadcrumb :separator-icon="ArrowRight"> <el-breadcrumb-item> <NuxtLink to="/">首页</NuxtLink> </el-breadcrumb-item> <el-breadcrumb-item>搜索</el-breadcrumb-item> </el-breadcrumb> </div> </div> <div class="newsList"> <div class="inner"> <div class="innerLeft"> <ul class="list" v-if="newsList.length >= 0"> <li v-for="(item, index) in newsList" :key="index"> <NuxtLink :href="getLinkPathDetail(item)" :title="item.title" :target="item.islink == 1 ? '_blank' : '_self'"> {{ item.title }} </NuxtLink> </li> </ul> <div v-if="newsList.length == 0" class="empty"> <div> <img src="../../public/search/empty.png" alt="暂无内容"> <p>暂无搜索数据</p> </div> </div> <!-- 分页器 --> <div class="pagination" v-if="total > 0"> <el-pagination size="small" background layout="prev, pager, next" :total="total" class="mt-4" :page-size="pageSize" prev-text="上一页" next-text="下一页" @change="changePage" /> </div> </div> </div> </div> <!-- 列表页广告二 --> <HomeTopTen :imgurl="adImg2" v-if="adImg2"></HomeTopTen> <!-- 页面底部 --> <HomeFoot1></HomeFoot1> </div> </template> <script setup> //1.页面依赖 start ----------------------------------------> import { ElBreadcrumb, ElBreadcrumbItem, ElPagination } from 'element-plus' import { ArrowRight } from '@element-plus/icons-vue' import { ref, onMounted } from 'vue'; const route = useRoute(); //const pageCatids = route.query.catids; const pageCatids = "" if(route.params.id=='search'){ }else{ const pageCatids = route.params.id } const pageDepartment_id = route.query.department_id; //const category_id = route.query.category_id; //获得该页面的id // const searchKey = route.query.keyword // const catids = ref([]); //关键词 let total = useState("total", () => 0) let page = useState("page", () => 1) let pageSize = useState("pageSize", () => 20) //格式化跳转链接 const getLinkPathDetail = (item) => { if (item.islink == 1) { return `${item.linkurl}`; } else { return `/${item.pinyin}/${item.id}.html`; } } //1.页面依赖 end ----------------------------------------> //2.页面数据 start ----------------------------------------> //2.1 广告 let adImg1 = ref([]); let adImg2 = ref([]); // async function getAdData(){ // const mkdata = await requestDataPromise('/web/getWebsiteAdvertisement',{ // method:'GET', // query:{ // 'ad_tag':'SEARCH' // } // }); // if(adData.code==200){ // for(let item of adData.data){ // if(item.ad_tag == 'SEARCH_0001'){ // adImg1.value = item; // } // if(item.ad_tag == 'SEARCH_0002'){ // adImg2.value = item; // } // } // }else{ // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->") // console.log("错误位置:获取搜索页广告列表") // console.log("后端错误反馈:",adData.message) // console.log("SSR waring ---------- SSR waring ---------- SSR waring ---------->") // } // } // getAdData(); onMounted(async () => { //从客户端获取行政职能部门 加快打开速度 const { $webUrl, $CwebUrl } = useNuxtApp(); //广告1 let url = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_search_0001` const responseAd1 = await fetch(url, { headers: { 'Content-Type': 'application/json', 'Userurl': $CwebUrl, 'Origin': $CwebUrl } }); const resultAd1 = await responseAd1.json(); adImg1.value = resultAd1.data[0]; //广告2 let url2 = `${$webUrl}/web/getWebsiteAdvertisement?ad_tag=snzxw_search_0002` const responseAd2 = await fetch(url2, { headers: { 'Content-Type': 'application/json', 'Userurl': $CwebUrl, 'Origin': $CwebUrl } }); const resultAd2 = await responseAd2.json(); adImg2.value = resultAd2.data[0]; }) // 新闻列表 const newsList = ref([]); let keywordInput = ref(""); //搜索 let goSearch = async () => { console.log(page.value) console.log(pageSize.value) console.log(keywordInput.value) console.log(pageCatids) console.log(pageDepartment_id) const listData = await requestDataPromise('/web/selectWebsiteCategory', { method: 'GET', query: { 'page': page.value, 'pageSize': pageSize.value, 'keyword':keywordInput.value, 'cityid':pageCatids, 'department_id':pageDepartment_id }, }); if(listData.data.rows){ console.log(listData) newsList.value = listData.data.rows; total.value = listData.data.count; }else{ newsList.value = []; total.value = 0; } } goSearch(); //基于导航池搜索 // let goSearchFont = async (font) => { // const listData = await requestDataPromise('/web/getWebsiteArticleList', { // method: 'GET', // query: { // 'page': page.value, // 'pageSize': pageSize.value, // 'catid': font // }, // }); // newsList.value = listData.data.rows; // total.value = listData.data.count; // } // //基于导航池与关键词搜索 // let goSearchFontandCid = async (font) => { // const listData = await requestDataPromise('/web/getWebsiteArticleList', { // method: 'GET', // query: { // 'page': page.value, // 'pageSize': pageSize.value, // 'catid': category_id, // 'keyword':searchKey // }, // }); // newsList.value = listData.data.rows; // total.value = listData.data.count; // } //直接查新闻 // const newslists = async () => { // try { // // 从地区跳转 // if (route.query.catids && route.query.catids.length > 0) { // // 将字符串转换回数组,并过滤掉可能的空值 // catids.value = route.query.catids.split(',').filter(id => id); // if (catids.value.length > 0) { // // 有效的 catids 数组,可以进行后续操作 // console.log('接收到的分类ID数组:', catids.value); // let font = catids.value.join(",") // font = "[" + font + "]" // goSearchFont(font); // } else { // // 处理空数组情况 // console.log('未接收到有效的分类ID'); // } // } else { // if (category_id == undefined) { // //直接搜索 默认进来没有导航池的话 不执行搜索 // goSearch(); // } else { // goSearchFontandCid(); // } // } // } catch (error) { // console.error(error); // } // } // newslists(); // 查询导航池的方法 // const newslists = async () => { // try { // // 从地区跳转 // if (route.query.catids && route.query.catids.length > 0) { // // 将字符串转换回数组,并过滤掉可能的空值 // catids.value = route.query.catids.split(',').filter(id => id); // if (catids.value.length > 0) { // // 有效的 catids 数组,可以进行后续操作 // console.log('接收到的分类ID数组:', catids.value); // let font = catids.value.join(",") // font = "[" + font + "]" // goSearchFont(font); // } else { // // 处理空数组情况 // console.log('未接收到有效的分类ID'); // } // } else { // if (category_id == undefined) { // //直接搜索 默认进来没有导航池的话 不执行搜索 // goSearch(); // } else { // goSearchFontandCid(); // } // } // } catch (error) { // console.error(error); // } // } // newslists(); //分页事件 let changePage = (value) => { console.log("当前页码", value); page.value = value console.log(page.value); goSearch() } //2.页面数据 end ----------------------------------------> //4.设置seo信息 start----------------------------------------> //4.1 设置seo信息 const setData = await requestDataPromise('/web/getWebsiteFootInfo', { method: 'GET', query: {}, }); let seoTitle = setData.data.website_head.title; let seoDescription = setData.data.website_head.description; let seoKeywords = setData.data.website_head.keywords; let seoSuffix = setData.data.website_head.suffix; let seoName = setData.data.website_head.website_name; useSeoMeta({ title: seoTitle + "_" + seoSuffix, meta: [ { name: 'description', content: seoDescription + "_" + seoName + "_" + seoSuffix , tagPriority: 10 }, { name: 'keywords', content: seoKeywords + "_" + seoName + "_" + seoSuffix , tagPriority: 10 } ] }); //4.设置seo信息 end----------------------------------------> </script> <style lang="less" scoped> @import url('@/assets/css/search.less'); </style>